package com.kiwilss.aopdemo.ui.room.kotlin

import androidx.room.*

/**
 * @author : Administrator
 * e-mail : kiwilss@163.com
 * time   : 2021/02/03
 *  desc   :
 */
@Dao
interface UserDao {
    /*我们看到直接中有个参数onConflict，表示的是当插入的数据已经存在时候的处理逻辑，
    有三种操作逻辑：REPLACE、ABORT和IGNORE。
    如果不指定则默认为ABORT终止插入数据。
    这里我们将其指定为REPLACE替换原有数据。
     */
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun addUser(user: User)

    @Delete
    fun deleteUserByUser(user: User)


    @Update
    fun updateUserByUser(user: User)

    @Query("select * from users where userId = :id")
    fun getUserById(id: Int): User?

    @Query("select * from users")
    fun getAllUser(): List<User>?


}